Microsoft の「クラウドアプリケーションのベストプラクティス」が良かったので紹介したい
こんにちは。CX事業本部MAD事業部のYui(@MayForBlue)です。
最近調べものをしている中で見つけたドキュメントが良かったのでご紹介したいと思います。
先にまとめ
- Microsoft の RESTful Web API の設計 のドキュメントが API 設計を考える上で勉強になった
- 関連する クラウド アプリケーションのベスト プラクティス のドキュメントもアプリケーションを設計する際の指標として良さそう
RESTful Web API の設計
最近 API 設計やパス設計について考える機会があったのですが、これという正解がなかったり、人によって思想やこだわりが違ったりして結構難しいなと感じていました。
そんな中で下記のドキュメントを見つけてひとつの指標として良いなと思ったのでご紹介します。
内容(項目)
- REST とは何か
- リソースを中心とした API 設計の整理
- HTTP メソッドに関する API 操作の定義
- HTTP セマンティクスへの準拠
- メディアの種類
- GET メソッド
- POST メソッド
- PUT メソッド
- PATCH メソッド
- DELETE メソッド
- 非同期操作
- データのフィルター処理とページング処理
- 大きなバイナリ リソースの部分的な応答のサポート
- HATEOAS を使用した関連リソースへのナビゲーションの実現
- RESTful Web API のバージョン管理
- バージョン管理なし
- URI のバージョン管理
- クエリ文字列のバージョン管理
- ヘッダーのバージョン管理
- メディアの種類のバージョン管理
- Open API イニシアチブ
良いと思ったポイント
- RESTful Web API の設計のベストプラクティスが知れる
- 内容が網羅的かつ気をつけるべきポイントが示されている
- パスでリソースの階層をどこまで表現するかのベストプラクティスと、その理由が明示されている
- リソースを中心とした API 設計の整理
- 個人的に一番知りたかったポイント
- 最近まで更新されているかつ日本語がわかりやすい
アーキテクチャガイド
調べている中で、「RESTful Web API の設計」以外にも「クラウド アプリケーションのベスト プラクティス」としてまとめられているドキュメントがあることに気づきました。
用意されているページは以下です。
- API 設計
- API 実装
- 自動スケール
- バックグラウンド ジョブ
- キャッシュ
- Content Delivery Network
- データのパーティション分割
- データのパーティション分割戦略 (サービスごと)
- ホスト名の保存
- メッセージ エンコードに関する考慮事項
- 監視と診断
- 特定のサービスの再試行ガイダンス
- 一時的な障害の処理
まだ自分も全ては読めていないのですが、アプリケーションを設計する上で悩んだり正解がないような内容にもフォーカスされていて、勉強になるかつ、今後迷ったときに読み返したい内容だと感じました。
また、前述の 「RESTful Web API の設計」のドキュメントについてもそうなのですが、Microsoft が提供しているベストプラクティスではあるものの、どのクラウドを使うかに依らず参考にできる内容なのも良いと感じたポイントです。
まとめ
今回調べものをしていてこのドキュメントの存在を初めて知って、良いドキュメントだなと思ったのでご紹介させていただきました。
設計方針に迷ったときにこのドキュメントをもとにチームメンバーと議論したりするのも楽しそうです。
以上、CX事業本部MAD事業部のYui(@MayForBlue)でした。